package com.ruoyi.system.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.vo.PmsProductVo;
import com.ruoyi.system.domain.vo.ProductTree;
import com.ruoyi.system.mapper.PmsProductCategoryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.PmsProductMapper;
import com.ruoyi.system.domain.PmsProduct;
import com.ruoyi.system.service.IPmsProductService;

/**
 * 商品信息Service业务层处理
 *
 * @author ruoyi
 * @date 2024-11-11
 */
@Service
public class PmsProductServiceImpl implements IPmsProductService
{
    @Autowired
    private PmsProductMapper pmsProductMapper;


    @Autowired
    private PmsProductCategoryMapper productCategoryMapper;
    /**
     * 查询商品信息
     *
     * @param productId 商品信息主键
     * @return 商品信息
     */
    @Override
    public PmsProduct selectPmsProductByProductId(Long productId)
    {
        return pmsProductMapper.selectPmsProductByProductId(productId);
    }

    /**
     * 查询商品信息列表
     *
     * @param pmsProduct 商品信息
     * @return 商品信息
     */
    @Override
    public List<PmsProduct> selectPmsProductList(PmsProduct pmsProduct)
    {
        return pmsProductMapper.selectPmsProductList(pmsProduct);
    }

    @Override
    public List<PmsProductVo> selectPmsProductVoList(PmsProduct pmsProduct) {
        return pmsProductMapper.selectPmsProductVoList(pmsProduct);
    }

    /**
     * 新增商品信息
     *
     * @param pmsProduct 商品信息
     * @return 结果
     */
    @Override
    public int insertPmsProduct(PmsProduct pmsProduct)
    {
        pmsProduct.setCreateTime(DateUtils.getNowDate());
        return pmsProductMapper.insertPmsProduct(pmsProduct);
    }

    /**
     * 修改商品信息
     *
     * @param pmsProduct 商品信息
     * @return 结果
     */
    @Override
    public int updatePmsProduct(PmsProduct pmsProduct)
    {
        pmsProduct.setUpdateTime(DateUtils.getNowDate());
        return pmsProductMapper.updatePmsProduct(pmsProduct);
    }

    /**
     * 批量删除商品信息
     *
     * @param productIds 需要删除的商品信息主键
     * @return 结果
     */
    @Override
    public int deletePmsProductByProductIds(Long[] productIds)
    {
        return pmsProductMapper.deletePmsProductByProductIds(productIds);
    }

    /**
     * 删除商品信息信息
     *
     * @param productId 商品信息主键
     * @return 结果
     */
    @Override
    public int deletePmsProductByProductId(Long productId)
    {
        return pmsProductMapper.deletePmsProductByProductId(productId);
    }

    @Override
    public List<ProductTree> selectProductTree(PmsProduct query) {
        List<ProductTree> productTrees = productCategoryMapper.selectProductCategoryList(query);
        return productTrees;
    }
}
